home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / hplip / base / maint.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-10-28  |  37.6 KB  |  1,525 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. from g import *
  5. from codes import *
  6. import status
  7. import pml
  8. from prnt import pcl, ldl, colorcal
  9.  
  10. def AlignType1(dev, loadpaper_ui):
  11.     ok = loadpaper_ui()
  12.     if ok:
  13.         dev.writeEmbeddedPML(pml.OID_AUTO_ALIGNMENT, pml.AUTO_ALIGNMENT, style = 0, direct = True)
  14.         dev.closePrint()
  15.     
  16.     return ok
  17.  
  18.  
  19. def AlignType1PML(dev, loadpaper_ui):
  20.     ok = loadpaper_ui()
  21.     if ok:
  22.         dev.setPML(pml.OID_AUTO_ALIGNMENT, pml.AUTO_ALIGNMENT)
  23.         dev.closePML()
  24.     
  25.     return ok
  26.  
  27.  
  28. def AlignType2(dev, loadpaper_ui, align_ui, bothpens_ui):
  29.     (state, a, b, c, d) = (0, 6, 6, 3, 3)
  30.     ok = False
  31.     while state != -1:
  32.         if state == 0:
  33.             state = 1
  34.             pens = dev.getStatusFromDeviceID()['agents']
  35.             pen_types = [ pens[x] for x in range(len(pens)) ]
  36.             if AGENT_TYPE_NONE in pen_types:
  37.                 log.error('Cannot perform alignment with 0 or 1 pen installed.')
  38.                 state = 100
  39.             
  40.         AGENT_TYPE_NONE in pen_types
  41.         if state == 1:
  42.             state = -1
  43.             ok = loadpaper_ui()
  44.             if ok:
  45.                 state = 2
  46.             
  47.         ok
  48.         if state == 2:
  49.             state = -1
  50.             alignType2Phase1(dev)
  51.             (ok, a) = align_ui('A', 'h', 'kc', 2, 11)
  52.             if ok:
  53.                 state = 3
  54.             
  55.         ok
  56.         if state == 3:
  57.             state = -1
  58.             (ok, b) = align_ui('B', 'v', 'kc', 2, 11)
  59.             if ok:
  60.                 state = 4
  61.             
  62.         ok
  63.         if state == 4:
  64.             state = -1
  65.             (ok, c) = align_ui('C', 'v', 'kc', 2, 5)
  66.             if ok:
  67.                 state = 5
  68.             
  69.         ok
  70.         if state == 5:
  71.             state = -1
  72.             (ok, d) = align_ui('D', 'v', 'c', 2, 5)
  73.             if ok:
  74.                 state = 6
  75.             
  76.         ok
  77.         if state == 6:
  78.             ok = loadpaper_ui()
  79.             state = -1
  80.             continue
  81.         None if ok else []
  82.         if state == 100:
  83.             ok = False
  84.             bothpens_ui()
  85.             state = -1
  86.             continue
  87.     return ok
  88.  
  89.  
  90. def AlignType3(dev, loadpaper_ui, align_ui, paperedge_ui, align_type):
  91.     (state, a, b, c, d, zca) = (0, 6, 6, 3, 3, 6)
  92.     ok = False
  93.     while state != -1:
  94.         if state == 0:
  95.             state = -1
  96.             ok = loadpaper_ui()
  97.             if ok:
  98.                 alignType3Phase1(dev)
  99.                 state = 1
  100.             
  101.         ok
  102.         if state == 1:
  103.             state = -1
  104.             (ok, a) = align_ui('A', 'h', 'kc', 2, 11)
  105.             if ok:
  106.                 state = 2
  107.             
  108.         ok
  109.         if state == 2:
  110.             state = -1
  111.             (ok, b) = align_ui('B', 'v', 'kc', 2, 11)
  112.             if ok:
  113.                 state = 3
  114.             
  115.         ok
  116.         if state == 3:
  117.             state = -1
  118.             (ok, c) = align_ui('C', 'v', 'k', 2, 11)
  119.             if ok:
  120.                 state = 4
  121.             
  122.         ok
  123.         if state == 4:
  124.             state = -1
  125.             (ok, d) = align_ui('D', 'v', 'kc', 2, 11)
  126.             if ok:
  127.                 state = 5
  128.             
  129.         ok
  130.         if state == 5:
  131.             state = -1
  132.             alignType3Phase2(dev, a, b, c, d)
  133.         None if align_type == 9 else ok
  134.         if state == 6:
  135.             state = -1
  136.             alignType3Phase3(dev)
  137.             (ok, zca) = paperedge_ui(13)
  138.             if ok:
  139.                 state = 7
  140.             
  141.         ok
  142.         if state == 7:
  143.             ok = loadpaper_ui()
  144.             if ok:
  145.                 alignType3Phase4(dev, zca)
  146.             
  147.             state = -1
  148.             continue
  149.     return ok
  150.  
  151.  
  152. def AlignxBow(dev, align_type, loadpaper_ui, align_ui, paperedge_ui, invalidpen_ui, coloradj_ui):
  153.     (state, statepos) = (0, 0)
  154.     user_cancel_states = [
  155.         1000,
  156.         -1]
  157.     (a, b, c, d, e, f, g) = (0, 0, 0, 0, 0, 0, 0)
  158.     error_states = [
  159.         -1]
  160.     ok = False
  161.     dev.pen_config = status.getPenConfiguration(dev.getStatusFromDeviceID())
  162.     if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID):
  163.         state = 100
  164.         states = [
  165.             -1]
  166.     elif dev.pen_config == AGENT_CONFIG_BLACK_ONLY:
  167.         state = 0
  168.         states = [
  169.             2,
  170.             200,
  171.             3,
  172.             -1]
  173.     elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY:
  174.         state = 0
  175.         states = [
  176.             2,
  177.             200,
  178.             3,
  179.             -1]
  180.     elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY:
  181.         state = 0
  182.         states = [
  183.             2,
  184.             300,
  185.             3,
  186.             -1]
  187.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  188.         state = 0
  189.         states = [
  190.             2,
  191.             400,
  192.             500,
  193.             600,
  194.             700,
  195.             3,
  196.             4,
  197.             -1]
  198.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  199.         state = 0
  200.         states = [
  201.             2,
  202.             400,
  203.             500,
  204.             600,
  205.             700,
  206.             800,
  207.             900,
  208.             3,
  209.             4,
  210.             -1]
  211.     
  212.     while state != -1:
  213.         if state == 0:
  214.             ok = loadpaper_ui()
  215.             if ok:
  216.                 if align_type == 4:
  217.                     alignType4Phase1(dev)
  218.                 elif align_type == 5:
  219.                     alignType5Phase1(dev)
  220.                 elif align_type == 7:
  221.                     alignType7Phase1(dev)
  222.                 else:
  223.                     statepos = 0
  224.                     states = error_states
  225.             else:
  226.                 statepos = 0
  227.                 states = user_cancel_states
  228.         elif state == 2:
  229.             (ok, a) = paperedge_ui(13)
  230.             if not ok:
  231.                 statepos = 0
  232.                 states = user_cancel_states
  233.             
  234.         elif state == 3:
  235.             if align_type == 4:
  236.                 alignType4Phase2(dev, a, b, c, d, e)
  237.             elif align_type == 5:
  238.                 alignType5Phase2(dev, a, b, c, d, e, f, g)
  239.             else:
  240.                 alignType7Phase2(dev, a, b, c, d, e, f, g)
  241.         elif state == 4:
  242.             ok = loadpaper_ui()
  243.             if ok:
  244.                 if align_type == 4:
  245.                     alignType4Phase3(dev)
  246.                 elif align_type == 5:
  247.                     alignType5Phase3(dev)
  248.                 else:
  249.                     alignType7Phase3(dev)
  250.             else:
  251.                 statepos = 0
  252.                 states = user_cancel_states
  253.         elif state == 100:
  254.             invalidpen_ui()
  255.             state = -1
  256.         elif state == 200:
  257.             (ok, b) = align_ui('B', 'v', 'k', 2, 11)
  258.             if not ok:
  259.                 statepos = 0
  260.                 states = user_cancel_states
  261.             
  262.         elif state == 300:
  263.             (ok, b) = align_ui('B', 'v', 'kc', 2, 11)
  264.             if not ok:
  265.                 statepos = 0
  266.                 states = user_cancel_states
  267.             
  268.         elif state == 400:
  269.             (ok, b) = align_ui('B', 'h', 'kc', 2, 17)
  270.             if not ok:
  271.                 statepos = 0
  272.                 states = user_cancel_states
  273.             
  274.         elif state == 500:
  275.             (ok, c) = align_ui('C', 'v', 'kc', 2, 17)
  276.             if not ok:
  277.                 statepos = 0
  278.                 states = user_cancel_states
  279.             
  280.         elif state == 600:
  281.             (ok, d) = align_ui('D', 'v', 'k', 2, 11)
  282.             if not ok:
  283.                 statepos = 0
  284.                 states = user_cancel_states
  285.             
  286.         elif state == 700:
  287.             (ok, e) = align_ui('E', 'v', 'kc', 2, 11)
  288.             if not ok:
  289.                 statepos = 0
  290.                 states = user_cancel_states
  291.             
  292.         elif state == 800:
  293.             (ok, f) = coloradj_ui('F', 21)
  294.             if not ok:
  295.                 statepos = 0
  296.                 states = user_cancel_states
  297.             
  298.         elif state == 900:
  299.             (ok, f) = coloradj_ui('G', 21)
  300.             if not ok:
  301.                 statepos = 0
  302.                 states = user_cancel_states
  303.             
  304.         elif state == 1000:
  305.             ok = False
  306.             log.warning('Alignment canceled at user request.')
  307.         
  308.         state = states[statepos]
  309.         statepos += 1
  310.     return ok
  311.  
  312.  
  313. def AlignType6(dev, ui1, ui2, loadpaper_ui):
  314.     state = 0
  315.     ok = False
  316.     while state != -1:
  317.         if state == 0:
  318.             state = 2
  319.             accept = ui1()
  320.             if not accept:
  321.                 state = 1
  322.             
  323.         accept
  324.         if state == 1:
  325.             state = -1
  326.             ok = loadpaper_ui()
  327.             if ok:
  328.                 alignType6Phase1(dev)
  329.                 state = 2
  330.             
  331.         ok
  332.         if state == 2:
  333.             ui2()
  334.             state = -1
  335.             continue
  336.     return ok
  337.  
  338.  
  339. def AlignType8(dev, loadpaper_ui, align_ui):
  340.     (state, a, b, c, d) = (0, 5, 5, 5, 5)
  341.     ok = False
  342.     while state != -1:
  343.         if state == 0:
  344.             state = -1
  345.             ok = loadpaper_ui()
  346.             if ok:
  347.                 num_inks = alignType8Phase1(dev)
  348.                 state = 1
  349.             
  350.         ok
  351.         if state == 1:
  352.             state = -1
  353.             (ok, a) = align_ui('A', 'v', 'k', 3, 9)
  354.             if ok:
  355.                 state = 2
  356.             
  357.         ok
  358.         if state == 2:
  359.             state = -1
  360.             (ok, b) = align_ui('B', 'v', 'c', 3, 9)
  361.             if ok:
  362.                 state = 3
  363.             
  364.         ok
  365.         if state == 3:
  366.             state = -1
  367.             (ok, c) = align_ui('C', 'v', 'kc', 3, 9)
  368.             if ok:
  369.                 state = 4
  370.             
  371.         ok
  372.         if state == 4:
  373.             state = -1
  374.             (ok, d) = align_ui('D', 'h', 'kc', 3, 9)
  375.             if ok:
  376.                 state = 5
  377.             
  378.         ok
  379.         if state == 5:
  380.             alignType8Phase2(dev, num_inks, a, b, c, d)
  381.             state = -1
  382.             continue
  383.     return ok
  384.  
  385.  
  386. def AlignType10(dev, loadpaper_ui, align_ui):
  387.     pattern = alignType10SetPattern(dev)
  388.     state = 0
  389.     while state != -1:
  390.         if state == 0:
  391.             state = -1
  392.             ok = loadpaper_ui()
  393.             if ok:
  394.                 alignType10Phase1(dev)
  395.                 state = 1
  396.             
  397.         ok
  398.         if state == 1:
  399.             values = align_ui(pattern, ALIGN_TYPE_LBOW)
  400.             log.debug(values)
  401.             alignType10Phase2(dev, values, pattern)
  402.             state = 2
  403.             continue
  404.         if state == 2:
  405.             state = -1
  406.             ok = loadpaper_ui()
  407.             if ok:
  408.                 alignType10Phase3(dev)
  409.             
  410.         ok
  411.  
  412.  
  413. def alignType10SetPattern(dev):
  414.     pattern = None
  415.     pen_config = status.getPenConfiguration(dev.getStatusFromDeviceID())
  416.     log.debug('Pen config=%d' % pen_config)
  417.     if pen_config == AGENT_CONFIG_BLACK_ONLY:
  418.         pattern = 1
  419.     elif pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  420.         pattern = 2
  421.     elif pen_config in (AGENT_CONFIG_COLOR_AND_PHOTO, AGENT_CONFIG_COLOR_AND_GREY):
  422.         pattern = 3
  423.     
  424.     log.debug('Pattern=%d' % pattern)
  425.     return pattern
  426.  
  427.  
  428. def alignType10Phase1(dev):
  429.     dev.writeEmbeddedPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_ALIGNMENT_PAGE)
  430.     dev.closePrint()
  431.  
  432.  
  433. def alignType10Phase2(dev, values, pattern):
  434.     i = 0
  435.     p = ''.join([
  436.         pcl.UEL,
  437.         '\n'])
  438.     for x in values:
  439.         i += 1
  440.         if not x:
  441.             break
  442.         
  443.         p = ''.join([
  444.             p,
  445.             pcl.ESC,
  446.             '*o5W\x1a',
  447.             chr(i),
  448.             '\x00',
  449.             chr(pattern),
  450.             chr(x),
  451.             '\n'])
  452.     
  453.     p = ''.join([
  454.         p,
  455.         pcl.UEL])
  456.     dev.printData(p)
  457.     dev.closePrint()
  458.  
  459.  
  460. def alignType10Phase3(dev):
  461.     dev.writeEmbeddedPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_ALIGNMENT_PAGE_VERIFICATION)
  462.     dev.closePrint()
  463.  
  464.  
  465. def align10and11and14Controls(pattern, align_type):
  466.     if align_type == ALIGN_TYPE_LIDIL_0_5_4:
  467.         if pattern == 1:
  468.             controls = {
  469.                 'A': (True, 23),
  470.                 'B': (True, 9),
  471.                 'C': (True, 9),
  472.                 'D': (False, 0),
  473.                 'E': (False, 0),
  474.                 'F': (False, 0),
  475.                 'G': (False, 0),
  476.                 'H': (False, 0) }
  477.         elif pattern == 2:
  478.             controls = {
  479.                 'A': (True, 17),
  480.                 'B': (True, 23),
  481.                 'C': (True, 23),
  482.                 'D': (True, 23),
  483.                 'E': (True, 9),
  484.                 'F': (True, 9),
  485.                 'G': (True, 9),
  486.                 'H': (True, 9) }
  487.         elif pattern == 3:
  488.             controls = {
  489.                 'A': (True, 9),
  490.                 'B': (True, 23),
  491.                 'C': (True, 23),
  492.                 'D': (True, 23),
  493.                 'E': (True, 9),
  494.                 'F': (True, 9),
  495.                 'G': (True, 9),
  496.                 'H': (True, 9) }
  497.         
  498.     elif align_type == ALIGN_TYPE_LIDIL_DJ_D1600:
  499.         if pattern == 1:
  500.             controls = {
  501.                 'A': (True, 23),
  502.                 'B': (True, 9) }
  503.         elif pattern == 2:
  504.             controls = {
  505.                 'A': (True, 23),
  506.                 'B': (True, 11),
  507.                 'C': (True, 23),
  508.                 'D': (True, 23),
  509.                 'E': (True, 11),
  510.                 'F': (True, 11),
  511.                 'G': (True, 11),
  512.                 'H': (True, 9),
  513.                 'I': (True, 9) }
  514.         elif pattern == 3:
  515.             controls = {
  516.                 'A': (True, 9),
  517.                 'B': (True, 23),
  518.                 'C': (True, 23),
  519.                 'D': (True, 23),
  520.                 'E': (True, 9),
  521.                 'F': (True, 9),
  522.                 'G': (True, 9),
  523.                 'H': (True, 9),
  524.                 'I': (True, 9) }
  525.         
  526.     elif pattern == 1:
  527.         controls = {
  528.             'A': (True, 23),
  529.             'B': (True, 9),
  530.             'C': (True, 9),
  531.             'D': (False, 0),
  532.             'E': (False, 0),
  533.             'F': (False, 0),
  534.             'G': (False, 0),
  535.             'H': (False, 0) }
  536.     elif pattern == 2:
  537.         controls = {
  538.             'A': (True, 23),
  539.             'B': (True, 17),
  540.             'C': (True, 23),
  541.             'D': (True, 23),
  542.             'E': (True, 9),
  543.             'F': (True, 9),
  544.             'G': (True, 9),
  545.             'H': (True, 9) }
  546.     elif pattern == 3:
  547.         controls = {
  548.             'A': (True, 23),
  549.             'B': (True, 9),
  550.             'C': (True, 23),
  551.             'D': (True, 23),
  552.             'E': (True, 9),
  553.             'F': (True, 9),
  554.             'G': (True, 9),
  555.             'H': (True, 9) }
  556.     
  557.     return controls
  558.  
  559.  
  560. def AlignType11(dev, loadpaper_ui, align_ui, invalidpen_ui):
  561.     pattern = alignType11SetPattern(dev)
  562.     if pattern is None:
  563.         invalidpen_ui()
  564.         return None
  565.     state = 0
  566.     while state != -1:
  567.         if state == 0:
  568.             state = -1
  569.             ok = loadpaper_ui()
  570.             if ok:
  571.                 alignType11Phase1(dev)
  572.                 state = 1
  573.             
  574.         ok
  575.         if state == 1:
  576.             values = align_ui(pattern, ALIGN_TYPE_LIDIL_0_5_4)
  577.             log.debug(values)
  578.             alignType11Phase2(dev, values, pattern, dev.pen_config)
  579.             state = 2
  580.             continue
  581.         pattern is None
  582.         if state == 2:
  583.             state = -1
  584.             ok = loadpaper_ui()
  585.             if ok:
  586.                 alignType11Phase3(dev)
  587.             
  588.         ok
  589.  
  590.  
  591. def alignType11SetPattern(dev):
  592.     pattern = None
  593.     dev.pen_config = status.getPenConfiguration(dev.getStatusFromDeviceID())
  594.     log.debug('Pen config=%d' % dev.pen_config)
  595.     if dev.pen_config in (AGENT_CONFIG_BLACK_ONLY, AGENT_CONFIG_COLOR_ONLY):
  596.         pattern = 1
  597.     
  598.     if dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  599.         pattern = 2
  600.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  601.         pattern = 3
  602.     elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY:
  603.         return None
  604.     log.debug('Pattern=%d' % pattern)
  605.     return pattern
  606.  
  607.  
  608. def alignType11Phase1(dev):
  609.     dev.printData(ldl.buildResetPacket())
  610.     dev.printData(ldl.buildReportPagePacket(ldl.COMMAND_REPORT_PAGE_PEN_CALIBRATION))
  611.     dev.closePrint()
  612.  
  613.  
  614. def alignType11Phase2(dev, values, pattern, pen_config):
  615.     active_colors = 0
  616.     if pen_config == AGENT_CONFIG_BLACK_ONLY:
  617.         active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_K
  618.         values = values[:3]
  619.     elif pen_config == AGENT_CONFIG_COLOR_ONLY:
  620.         active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_COLOR
  621.         values = values[:3]
  622.     elif pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  623.         active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_K | ldl.COMMAND_SET_PEN_ALIGNMENT_3_COLOR
  624.     elif pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  625.         active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_COLOR | ldl.COMMAND_SET_PEN_ALIGNMENT_3_PHOTO
  626.     
  627.     log.debug('Active colors=0x%x Values=%s' % (active_colors, values))
  628.     dev.printData(ldl.buildSetPenAlignment3Packet(active_colors, values))
  629.     dev.closePrint()
  630.  
  631.  
  632. def alignType11Phase3(dev):
  633.     dev.printData(ldl.buildResetPacket())
  634.     dev.printData(ldl.buildReportPagePacket(ldl.COMMAND_REPORT_PAGE_PEN_CALIBRATION_VERIFY))
  635.     dev.closePrint()
  636.  
  637.  
  638. def AlignType13(dev, loadpaper_ui, scanner_align_load_ui):
  639.     ok = loadpaper_ui()
  640.     if ok:
  641.         alignType13Phase1(dev)
  642.         ok = scanner_align_load_ui()
  643.     
  644.     return ok
  645.  
  646.  
  647. def alignType13Phase1(dev):
  648.     dev.setPML(pml.OID_AUTO_ALIGNMENT, pml.AUTO_ALIGNMENT)
  649.     dev.closePML()
  650.  
  651.  
  652. def AlignType14(dev, loadpaper_ui, align_ui, invalidpen_ui):
  653.     pattern = alignType14SetPattern(dev)
  654.     if pattern is None:
  655.         invalidpen_ui()
  656.         return None
  657.     state = 0
  658.     while state != -1:
  659.         if state == 0:
  660.             state = -1
  661.             ok = loadpaper_ui()
  662.             if ok:
  663.                 alignType14Phase1(dev)
  664.                 state = 1
  665.             
  666.         ok
  667.         if state == 1:
  668.             values = align_ui(pattern, ALIGN_TYPE_LIDIL_DJ_D1600)
  669.             log.debug(values)
  670.             alignType14Phase2(dev, values, pattern, dev.pen_config)
  671.             state = 2
  672.             continue
  673.         pattern is None
  674.         if state == 2:
  675.             state = -1
  676.             ok = loadpaper_ui()
  677.             if ok:
  678.                 alignType14Phase3(dev)
  679.             
  680.         ok
  681.  
  682.  
  683. def alignType14SetPattern(dev):
  684.     pattern = None
  685.     dev.pen_config = status.getPenConfiguration(dev.getStatusFromDeviceID())
  686.     log.debug('Pen config=%d' % dev.pen_config)
  687.     if dev.pen_config in (AGENT_CONFIG_BLACK_ONLY, AGENT_CONFIG_COLOR_ONLY):
  688.         pattern = 1
  689.     
  690.     if dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  691.         pattern = 2
  692.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  693.         pattern = 3
  694.     elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY:
  695.         return None
  696.     log.debug('Pattern=%d' % pattern)
  697.     return pattern
  698.  
  699.  
  700. def alignType14Phase1(dev):
  701.     dev.printData(ldl.buildResetPacket())
  702.     dev.printData(ldl.buildReportPagePacket(ldl.COMMAND_REPORT_PAGE_PEN_CALIBRATION))
  703.     dev.closePrint()
  704.  
  705.  
  706. def alignType14Phase2(dev, values, pattern, pen_config):
  707.     active_colors = 0
  708.     if pen_config == AGENT_CONFIG_BLACK_ONLY:
  709.         active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_K
  710.         values = values[:2]
  711.     elif pen_config == AGENT_CONFIG_COLOR_ONLY:
  712.         active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_COLOR
  713.         values = values[:2]
  714.     elif pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  715.         active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_K | ldl.COMMAND_SET_PEN_ALIGNMENT_3_COLOR
  716.     elif pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  717.         active_colors = ldl.COMMAND_SET_PEN_ALIGNMENT_3_COLOR | ldl.COMMAND_SET_PEN_ALIGNMENT_3_PHOTO
  718.     
  719.     log.debug('Active colors=0x%x Values=%s' % (active_colors, values))
  720.     dev.printData(ldl.buildSetPenAlignment3Packet(active_colors, values))
  721.     dev.closePrint()
  722.  
  723.  
  724. def alignType14Phase3(dev):
  725.     dev.printData(ldl.buildResetPacket())
  726.     dev.printData(ldl.buildReportPagePacket(ldl.COMMAND_REPORT_PAGE_PEN_CALIBRATION_VERIFY))
  727.     dev.closePrint()
  728.  
  729.  
  730. def alignType2Phase1(dev):
  731.     dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, 0)
  732.     dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, 0)
  733.     dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, 0)
  734.     dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, 0)
  735.     dev.closePrint()
  736.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'align1_8xx.pcl.gz'))
  737.  
  738.  
  739. def alignType2Phase2(dev, a, b, c, d):
  740.     dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, (a - 6) * 12)
  741.     dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, (b - 6) * 12)
  742.     dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, (c - 3) * 12)
  743.     dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, (d - 3) * 12)
  744.     dev.writeEmbeddedPML(pml.OID_MARKING_AGENTS_INITIALIZED, 3)
  745.     dev.closePrint()
  746.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'align2_8xx.pcl.gz'))
  747.  
  748.  
  749. def alignType3Phase1(dev):
  750.     dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, 0)
  751.     dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, 0)
  752.     dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, 0)
  753.     dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, 0)
  754.     dev.closePrint()
  755.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'align1_9xx.pcl.gz'))
  756.  
  757.  
  758. def alignType3Phase2(dev, a, b, c, d):
  759.     dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, (a - 6) * 12)
  760.     dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, (6 - b) * 12)
  761.     dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, (6 - c) * 12)
  762.     dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, (6 - d) * 6)
  763.     dev.closePrint()
  764.  
  765.  
  766. def alignType3Phase3(dev):
  767.     dev.closePrint()
  768.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'align3_9xx.pcl.gz'))
  769.  
  770.  
  771. def alignType3Phase4(dev, zca):
  772.     dev.writeEmbeddedPML(pml.OID_MARKING_AGENTS_INITIALIZED, 3)
  773.     dev.closePrint()
  774.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'align2_9xx.pcl.gz'))
  775.  
  776.  
  777. def alignType4Phase1(dev):
  778.     dev.printData(ldl.buildLIDILPacket(ldl.PACKET_TYPE_RESUME_NORMAL_OPERATION))
  779.     if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID):
  780.         return None
  781.     if dev.pen_config == AGENT_CONFIG_BLACK_ONLY:
  782.         ldl_file = 'cbbcal.ldl.gz'
  783.     elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY:
  784.         ldl_file = 'cbccal.ldl.gz'
  785.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  786.         ldl_file = 'cb2pcal.ldl.gz'
  787.     
  788.     dev.printData(ldl.buildSetPrinterAlignmentPacket(0, 0, 0, 0))
  789.     dev.closePrint()
  790.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ldl', ldl_file))
  791.  
  792.  
  793. def alignType4Phase2(dev, a, b, c, d, e):
  794.     log.debug('A=%d, B=%d, C=%d, D=%d, E=%d' % (a, b, c, d, e))
  795.     if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID):
  796.         return None
  797.     zca = (7 - a) * -48
  798.     dev.printData(ldl.buildZCAPacket(zca))
  799.     if dev.pen_config == AGENT_CONFIG_BLACK_ONLY:
  800.         k_bidi = (6 - b) * 2
  801.         dev.printData(ldl.buildSetPrinterAlignmentPacket(k_bidi, 0, 0, 0))
  802.     elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY:
  803.         cmy_bidi = (6 - b) * 2
  804.         dev.printData(ldl.buildSetPrinterAlignmentPacket(0, 0, 0, cmy_bidi))
  805.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  806.         vert = (9 - b) * 2
  807.         hort = (9 - c) * -2
  808.         k_bidi = (6 - d) * 2
  809.         cmy_bidi = (6 - e) * 2
  810.         dev.printData(ldl.buildSetPrinterAlignmentPacket(k_bidi, hort, vert, cmy_bidi))
  811.     
  812.     dev.printData(ldl.buildSetPensAlignedPacket())
  813.     dev.closePrint()
  814.  
  815.  
  816. def alignType4Phase3(dev):
  817.     if dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  818.         dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ldl', 'cb2pcal_done.ldl.gz'))
  819.     
  820.  
  821.  
  822. def alignType5Phase1(dev):
  823.     dev.printData(ldl.buildLIDILPacket(ldl.PACKET_TYPE_RESUME_NORMAL_OPERATION))
  824.     if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID):
  825.         return None
  826.     if dev.pen_config == AGENT_CONFIG_BLACK_ONLY:
  827.         ldl_file = 'cbbcal.ldl.gz'
  828.     elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY:
  829.         ldl_file = 'cbpcal.ldl.gz'
  830.     elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY:
  831.         ldl_file = 'cbccal.ldl.gz'
  832.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  833.         ldl_file = 'cb2pcal.ldl.gz'
  834.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  835.         ldl_file = 'cbcpcal.ldl.gz'
  836.     
  837.     dev.printData(ldl.buildZCAPacket(0))
  838.     dev.printData(ldl.buildColorHortPacket(0))
  839.     dev.printData(ldl.buildColorVertPacket(0))
  840.     dev.printData(ldl.buildBlackVertPacket(0))
  841.     dev.printData(ldl.buildBlackHortPacket(0))
  842.     dev.printData(ldl.buildBlackBidiPacket(0))
  843.     dev.printData(ldl.buildColorBidiPacket(0))
  844.     dev.printData(ldl.buildPhotoHuePacket(0))
  845.     dev.printData(ldl.buildColorHuePacket(0))
  846.     dev.closePrint()
  847.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ldl', ldl_file))
  848.  
  849.  
  850. def alignType5Phase2(dev, a, b, c, d, e, f, g):
  851.     log.debug('A=%d, B=%d, C=%d, D=%d, E=%d, F=%d, G=%d' % (a, b, c, d, e, f, g))
  852.     if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID):
  853.         return None
  854.     zca = (7 - a) * -48
  855.     dev.printData(ldl.buildZCAPacket(zca))
  856.     if dev.pen_config == AGENT_CONFIG_BLACK_ONLY:
  857.         k_bidi = (6 - b) * 2
  858.         dev.printData(ldl.buildBlackBidiPacket(k_bidi))
  859.     elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY:
  860.         kcm_bidi = (6 - b) * 2
  861.         dev.printData(ldl.buildPhotoBidiPacket(kcm_bidi))
  862.     elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY:
  863.         cmy_bidi = (6 - b) * 2
  864.         dev.printData(ldl.buildColorBidiPacket(cmy_bidi))
  865.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  866.         vert = (9 - b) * 2
  867.         hort = (9 - c) * -2
  868.         k_bidi = (6 - d) * 2
  869.         cmy_bidi = (6 - e) * 2
  870.         dev.printData(ldl.buildColorHortPacket(0))
  871.         dev.printData(ldl.buildColorVertPacket(0))
  872.         dev.printData(ldl.buildBlackVertPacket(vert))
  873.         dev.printData(ldl.buildBlackHortPacket(hort))
  874.         dev.printData(ldl.buildBlackBidiPacket(k_bidi))
  875.         dev.printData(ldl.buildColorBidiPacket(cmy_bidi))
  876.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  877.         vert = (9 - b) * 2
  878.         hort = (9 - c) * -2
  879.         cmy_bidi = (6 - d) * 2
  880.         kcm_bidi = (6 - e) * 2
  881.         photo_adj = colorcal.PHOTO_ALIGN_TABLE[f][g]
  882.         color_adj = colorcal.COLOR_ALIGN_TABLE[f][g]
  883.         dev.printData(ldl.buildPhotoHortPacket(hort))
  884.         dev.printData(ldl.buildPhotoVertPacket(vert))
  885.         dev.printData(ldl.buildColorHortPacket(0))
  886.         dev.printData(ldl.buildColorVertPacket(0))
  887.         dev.printData(ldl.buildPhotoBidiPacket(kcm_bidi))
  888.         dev.printData(ldl.buildColorBidiPacket(cmy_bidi))
  889.         dev.printData(ldl.buildPhotoHuePacket(photo_adj))
  890.         dev.printData(ldl.buildColorHuePacket(color_adj))
  891.     
  892.     dev.printData(ldl.buildSetPensAlignedPacket())
  893.     dev.closePrint()
  894.  
  895.  
  896. def alignType5Phase3(dev):
  897.     dev.closePrint()
  898.     if dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  899.         dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ldl', 'cb2pcal_done.ldl.gz'))
  900.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  901.         dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ldl', 'cbccal_done.ldl.gz'))
  902.     
  903.  
  904.  
  905. def alignType6Phase1(dev):
  906.     dev.printData(ldl.buildPrintInternalPagePacket())
  907.     dev.closePrint()
  908.  
  909.  
  910. def alignType7Phase1(dev):
  911.     dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, 0)
  912.     dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, 0)
  913.     dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, 0)
  914.     dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, 0)
  915.     dev.writeEmbeddedPML(pml.OID_AGENT3_VERTICAL_ALIGNMENT, 0)
  916.     dev.writeEmbeddedPML(pml.OID_AGENT3_HORIZONTAL_ALIGNMENT, 0)
  917.     dev.writeEmbeddedPML(pml.OID_AGENT3_BIDIR_ADJUSTMENT, 0)
  918.     dev.writeEmbeddedPML(pml.OID_ZCA, 0)
  919.     if dev.pen_config in (AGENT_CONFIG_NONE, AGENT_CONFIG_INVALID):
  920.         return None
  921.     if dev.pen_config == AGENT_CONFIG_BLACK_ONLY:
  922.         pcl_file = 'crbcal.pcl.gz'
  923.     elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY:
  924.         pcl_file = 'crpcal.pcl.gz'
  925.     elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY:
  926.         pcl_file = 'crccal.pcl.gz'
  927.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  928.         pcl_file = 'crcbcal.pcl.gz'
  929.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  930.         pcl_file = 'crcpcal.pcl.gz'
  931.     
  932.     dev.closePrint()
  933.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', pcl_file))
  934.  
  935.  
  936. def alignType7Phase2(dev, a, b, c, d, e, f, g):
  937.     log.debug('A=%d, B=%d, C=%d, D=%d, E=%d, F=%d, G=%d' % (a, b, c, d, e, f, g))
  938.     zca = (7 - a) * -12
  939.     dev.writeEmbeddedPML(pml.OID_ZCA, zca)
  940.     if dev.pen_config == AGENT_CONFIG_BLACK_ONLY:
  941.         k_bidi = (6 - b) * 6
  942.         dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, k_bidi)
  943.     elif dev.pen_config == AGENT_CONFIG_PHOTO_ONLY:
  944.         kcm_bidi = (6 - b) * 6
  945.         dev.writeEmbeddedPML(pml.OID_AGENT3_BIDIR_ADJUSTMENT, kcm_bidi)
  946.     elif dev.pen_config == AGENT_CONFIG_COLOR_ONLY:
  947.         cmy_bidi = (6 - b) * 6
  948.         dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, cmy_bidi)
  949.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_BLACK:
  950.         vert = (9 - b) * 6
  951.         hort = (9 - c) * -6
  952.         k_bidi = (6 - d) * 6
  953.         cmy_bidi = (6 - e) * 6
  954.         dev.writeEmbeddedPML(pml.OID_AGENT1_BIDIR_ADJUSTMENT, k_bidi)
  955.         dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, cmy_bidi)
  956.         dev.writeEmbeddedPML(pml.OID_AGENT2_HORIZONTAL_ALIGNMENT, hort)
  957.         dev.writeEmbeddedPML(pml.OID_AGENT2_VERTICAL_ALIGNMENT, vert)
  958.     elif dev.pen_config == AGENT_CONFIG_COLOR_AND_PHOTO:
  959.         vert = (9 - b) * 6
  960.         hort = (9 - c) * -6
  961.         cmy_bidi = (6 - d) * 6
  962.         kcm_bidi = (6 - e) * 6
  963.         photo_adj = colorcal.PHOTO_ALIGN_TABLE[f][g]
  964.         color_adj = colorcal.COLOR_ALIGN_TABLE[f][g]
  965.         x = (color_adj << 8) + photo_adj
  966.         dev.writeEmbeddedPML(pml.OID_COLOR_CALIBRATION_SELECTION, x)
  967.         dev.writeEmbeddedPML(pml.OID_AGENT2_BIDIR_ADJUSTMENT, cmy_bidi)
  968.         dev.writeEmbeddedPML(pml.OID_AGENT3_BIDIR_ADJUSTMENT, kcm_bidi)
  969.         dev.writeEmbeddedPML(pml.OID_AGENT3_HORIZONTAL_ALIGNMENT, hort)
  970.         dev.writeEmbeddedPML(pml.OID_AGENT3_VERTICAL_ALIGNMENT, vert)
  971.     
  972.     dev.closePrint()
  973.  
  974.  
  975. def alignType7Phase3(dev):
  976.     dev.closePrint()
  977.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'crcaldone.pcl.gz'))
  978.  
  979.  
  980. def alignType8Phase1(dev):
  981.     pens = dev.getStatusFromDeviceID()['agents']
  982.     pen_types = [ pens[x]['type'] for x in range(len(pens)) ]
  983.     dev.closePrint()
  984.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', f))
  985.     return num_inks
  986.  
  987.  
  988. def alignType8Phase2(dev, num_inks, a, b, c, d):
  989.     align_values1 = {
  990.         1: '\x00\x00\x18',
  991.         2: '\x00\x00\x12',
  992.         3: '\x00\x00\x0c',
  993.         4: '\x00\x00\x06',
  994.         5: '\x00\x00\x00',
  995.         6: '\x01\x00\x06',
  996.         7: '\x01\x00\x0c',
  997.         8: '\x01\x00\x12',
  998.         9: '\x01\x00\x18' }
  999.     align_values2 = {
  1000.         1: '\x00\x00\x12',
  1001.         2: '\x00\x00\x0c',
  1002.         3: '\x00\x00\x06',
  1003.         4: '\x00\x00\x00',
  1004.         5: '\x01\x00\x06',
  1005.         6: '\x01\x00\x0c',
  1006.         7: '\x01\x00\x12',
  1007.         8: '\x01\x00\x18',
  1008.         9: '\x01\x00\x1e' }
  1009.     align_values3 = {
  1010.         1: '\x00\x00$',
  1011.         2: '\x00\x00\x18',
  1012.         3: '\x00\x00\x12',
  1013.         4: '\x00\x00\x06',
  1014.         5: '\x00\x00\x00',
  1015.         6: '\x01\x00\x06',
  1016.         7: '\x01\x00\x12',
  1017.         8: '\x01\x00\x18',
  1018.         9: '\x01\x00$' }
  1019.     if num_inks == 4:
  1020.         s = ''.join([
  1021.             pcl.UEL,
  1022.             '@PJL ENTER LANGUAGE=PCL3GUI\n',
  1023.             pcl.RESET,
  1024.             pcl.ESC,
  1025.             '*o5W\x1a\x01',
  1026.             align_values1[a],
  1027.             pcl.ESC,
  1028.             '*o5W\x1a\x02',
  1029.             align_values2[a],
  1030.             pcl.ESC,
  1031.             '*o5W\x1a\x03',
  1032.             align_values1[b],
  1033.             pcl.ESC,
  1034.             '*o5W\x1a\x04',
  1035.             align_values1[b],
  1036.             pcl.ESC,
  1037.             '*o5W\x1a\x08',
  1038.             align_values1[c],
  1039.             pcl.ESC,
  1040.             '*o5W\x1a\x07',
  1041.             align_values1[d],
  1042.             pcl.RESET,
  1043.             pcl.UEL])
  1044.     else:
  1045.         s = ''.join([
  1046.             pcl.UEL,
  1047.             '@PJL ENTER LANGUAGE=PCL3GUI\n',
  1048.             pcl.RESET,
  1049.             pcl.ESC,
  1050.             '*o5W\x1a\x05',
  1051.             align_values1[a],
  1052.             pcl.ESC,
  1053.             '*o5W\x1a\x06',
  1054.             align_values3[a],
  1055.             pcl.ESC,
  1056.             '*o5W\x1a\x03',
  1057.             align_values1[b],
  1058.             pcl.ESC,
  1059.             '*o5W\x1a\x04',
  1060.             align_values1[b],
  1061.             pcl.ESC,
  1062.             '*o5W\x1a\n',
  1063.             align_values1[c],
  1064.             pcl.ESC,
  1065.             '*o5W\x1a\t',
  1066.             align_values1[d],
  1067.             pcl.RESET,
  1068.             pcl.UEL])
  1069.     dev.printData(s)
  1070.     dev.closePrint()
  1071.  
  1072.  
  1073. def AlignType12(dev, loadpaper_ui):
  1074.     if loadpaper_ui():
  1075.         dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_ALIGNMENT_PAGE)
  1076.         dev.closePML()
  1077.     
  1078.  
  1079.  
  1080. def cleaning(dev, clean_type, level1, level2, level3, loadpaper_ui, dlg1, dlg2, dlg3, wait_ui):
  1081.     state = 0
  1082.     while state != -1:
  1083.         if state == 0:
  1084.             state = 1
  1085.             if clean_type == CLEAN_TYPE_PCL_WITH_PRINTOUT:
  1086.                 ok = loadpaper_ui()
  1087.                 if not ok:
  1088.                     state = -1
  1089.                 
  1090.             
  1091.         clean_type == CLEAN_TYPE_PCL_WITH_PRINTOUT
  1092.         if state == 1:
  1093.             level1(dev)
  1094.             state = 2
  1095.             continue
  1096.         if state == 2:
  1097.             state = -1
  1098.             ok = loadpaper_ui()
  1099.             if ok:
  1100.                 state = 3
  1101.             
  1102.         ok
  1103.         if state == 3:
  1104.             state = 4
  1105.             print_clean_test_page(dev)
  1106.             continue
  1107.         if state == 4:
  1108.             state = -1
  1109.             ok = dlg1()
  1110.             if ok:
  1111.                 state = 5
  1112.             
  1113.         ok
  1114.         if state == 5:
  1115.             level2(dev)
  1116.             state = 6
  1117.             continue
  1118.         if state == 6:
  1119.             state = -1
  1120.             ok = loadpaper_ui()
  1121.             if ok:
  1122.                 state = 7
  1123.             
  1124.         ok
  1125.         if state == 7:
  1126.             state = 8
  1127.             print_clean_test_page(dev)
  1128.             continue
  1129.         if state == 8:
  1130.             state = -1
  1131.             ok = dlg2()
  1132.             if ok:
  1133.                 state = 9
  1134.             
  1135.         ok
  1136.         if state == 9:
  1137.             level3(dev)
  1138.             state = 10
  1139.             continue
  1140.         if state == 10:
  1141.             state = -1
  1142.             ok = loadpaper_ui()
  1143.             if ok:
  1144.                 state = 11
  1145.             
  1146.         ok
  1147.         if state == 11:
  1148.             state = 12
  1149.             print_clean_test_page(dev)
  1150.             continue
  1151.         if state == 12:
  1152.             state = -1
  1153.             dlg3()
  1154.             continue
  1155.     return ok
  1156.  
  1157.  
  1158. def print_clean_test_page(dev):
  1159.     dev.closePrint()
  1160.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'ps', 'clean_page.pdf.gz'), raw = False)
  1161.  
  1162.  
  1163. def cleanType1(dev):
  1164.     dev.writeEmbeddedPML(pml.OID_CLEAN, pml.CLEAN_CLEAN)
  1165.     dev.closePrint()
  1166.  
  1167.  
  1168. def primeType1(dev):
  1169.     dev.writeEmbeddedPML(pml.OID_CLEAN, pml.CLEAN_PRIME)
  1170.     dev.closePrint()
  1171.  
  1172.  
  1173. def wipeAndSpitType1(dev):
  1174.     dev.writeEmbeddedPML(pml.OID_CLEAN, pml.CLEAN_WIPE_AND_SPIT)
  1175.     dev.closePrint()
  1176.  
  1177.  
  1178. def cleanType2(dev):
  1179.     dev.printData(ldl.buildResetPacket())
  1180.     dev.printData(ldl.buildLIDILPacket(ldl.PACKET_TYPE_COMMAND, ldl.COMMAND_HANDLE_PEN, ldl.COMMAND_HANDLE_PEN_CLEAN_LEVEL1))
  1181.     dev.closePrint()
  1182.  
  1183.  
  1184. def primeType2(dev):
  1185.     dev.printData(ldl.buildResetPacket())
  1186.     dev.printData(ldl.buildLIDILPacket(ldl.PACKET_TYPE_COMMAND, ldl.COMMAND_HANDLE_PEN, ldl.COMMAND_HANDLE_PEN_CLEAN_LEVEL2))
  1187.     dev.closePrint()
  1188.  
  1189.  
  1190. def wipeAndSpitType2(dev):
  1191.     dev.printData(ldl.buildResetPacket())
  1192.     dev.printData(ldl.buildLIDILPacket(ldl.PACKET_TYPE_COMMAND, ldl.COMMAND_HANDLE_PEN, ldl.COMMAND_HANDLE_PEN_CLEAN_LEVEL3))
  1193.     dev.closePrint()
  1194.  
  1195.  
  1196. def colorCalType1(dev, loadpaper_ui, colorcal_ui, photopenreq_ui):
  1197.     (value, state) = (4, 0)
  1198.     ok = False
  1199.     while state != -1:
  1200.         if state == 0:
  1201.             if colorCalType1PenCheck(dev):
  1202.                 state = 1
  1203.             else:
  1204.                 state = 100
  1205.         colorCalType1PenCheck(dev)
  1206.         if state == 1:
  1207.             state = -1
  1208.             ok = loadpaper_ui()
  1209.             if ok:
  1210.                 colorCalType1Phase1(dev)
  1211.                 state = 2
  1212.             
  1213.         ok
  1214.         if state == 2:
  1215.             state = -1
  1216.             (ok, value) = colorcal_ui()
  1217.             if ok:
  1218.                 state = 3
  1219.             
  1220.         ok
  1221.         if state == 3:
  1222.             colorCalType1Phase2(dev, value)
  1223.             state = -1
  1224.             continue
  1225.         if state == 100:
  1226.             ok = False
  1227.             photopenreq_ui()
  1228.             state = -1
  1229.             continue
  1230.     return ok
  1231.  
  1232.  
  1233. def colorCalType1PenCheck(dev):
  1234.     pens = dev.getStatusFromDeviceID()['agents']
  1235.     pen_types = [ pens[x]['type'] for x in range(len(pens)) ]
  1236.     if AGENT_TYPE_KCM in pen_types:
  1237.         return True
  1238.     log.error('Cannot perform color calibration with no photo pen installed.')
  1239.     return False
  1240.  
  1241.  
  1242. def colorCalType1Phase1(dev):
  1243.     dev.closePrint()
  1244.     dev.printGzipFile(os.path.join(prop.home_dir, 'data', 'pcl', 'colorcal1_450.pcl.gz'))
  1245.  
  1246.  
  1247. def colorCalType1Phase2(dev, value):
  1248.     color_cal = {
  1249.         1: ('\x0f<', '\x17\x0c'),
  1250.         2: ('\x10\xcc', '\x15|'),
  1251.         3: ('\x12\\', '\x13\xec'),
  1252.         4: ('\x13\xec', '\x12\\'),
  1253.         5: ('\x15|', '\x10\xcc'),
  1254.         6: ('\x17\x0c', '\x0f<'),
  1255.         7: ('\x18\x9c', '\r\xac') }
  1256.     s = ''.join([
  1257.         pcl.UEL,
  1258.         '@PJL ENTER LANGUAGE=PCL3GUI\n',
  1259.         pcl.RESET,
  1260.         pcl.ESC,
  1261.         '*o5W\x1a\x0c\x00',
  1262.         color_cal[value][0],
  1263.         pcl.ESC,
  1264.         '*o5W\x1a\x0b\x00',
  1265.         color_cal[value][1],
  1266.         pcl.RESET,
  1267.         pcl.UEL])
  1268.     dev.printData(s)
  1269.     dev.closePrint()
  1270.  
  1271.  
  1272. def colorCalType2(dev, loadpaper_ui, colorcal_ui, photopenreq_ui):
  1273.     (value, state) = (4, 0)
  1274.     ok = True
  1275.     while state != -1:
  1276.         if state == 0:
  1277.             if colorCalType2PenCheck(dev):
  1278.                 state = 1
  1279.             else:
  1280.                 state = 100
  1281.         colorCalType2PenCheck(dev)
  1282.         if state == 1:
  1283.             state = -1
  1284.             ok = loadpaper_ui()
  1285.             if ok:
  1286.                 colorCalType2Phase1(dev)
  1287.                 state = 2
  1288.             
  1289.         ok
  1290.         if state == 2:
  1291.             state = -1
  1292.             (ok, value) = colorcal_ui()
  1293.             if ok:
  1294.                 state = 3
  1295.             
  1296.         ok
  1297.         if state == 3:
  1298.             colorCalType2Phase2(dev, value)
  1299.             state = -1
  1300.             continue
  1301.         if state == 100:
  1302.             photopenreq_ui()
  1303.             ok = False
  1304.             state = -1
  1305.             continue
  1306.     return ok
  1307.  
  1308.  
  1309. def colorCalType2PenCheck(dev):
  1310.     pens = dev.getStatusFromDeviceID()['agents']
  1311.     pen_types = [ pens[x]['type'] for x in range(len(pens)) ]
  1312.     if AGENT_TYPE_NONE not in pen_types:
  1313.         return True
  1314.     log.error('Cannot perform color calibration with pens missing.')
  1315.     return False
  1316.  
  1317.  
  1318. def colorCalType2Phase1(dev):
  1319.     dev.writeEmbeddedPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_COLOR_CAL)
  1320.     dev.closePrint()
  1321.  
  1322.  
  1323. def colorCalType2Phase2(dev, value):
  1324.     c = colorcal.COLOR_CAL_TABLE
  1325.     p = ''.join([
  1326.         '\x1b&b19WPML \x04\x00\x06\x01\x04\x01\x05\x01\t\x08\x04',
  1327.         chr(c[value * 4] + 100),
  1328.         chr(c[value * 4 + 1] + 100),
  1329.         chr(c[value * 4 + 2] + 100),
  1330.         chr(c[value * 4 + 3] + 100),
  1331.         '\x1b%-12345X'])
  1332.     dev.printData(p)
  1333.     dev.closePrint()
  1334.  
  1335.  
  1336. def colorCalType3(dev, loadpaper_ui, colorcal_ui, photopenreq_ui):
  1337.     (value, state) = (4, 0)
  1338.     ok = True
  1339.     while state != -1:
  1340.         if state == 0:
  1341.             if colorCalType3PenCheck(dev):
  1342.                 state = 1
  1343.             else:
  1344.                 state = 100
  1345.         colorCalType3PenCheck(dev)
  1346.         if state == 1:
  1347.             state = -1
  1348.             ok = loadpaper_ui()
  1349.             if ok:
  1350.                 colorCalType3Phase1(dev)
  1351.                 state = 2
  1352.             
  1353.         ok
  1354.         if state == 2:
  1355.             state = -1
  1356.             (ok, valueA) = colorcal_ui('A', 21)
  1357.             if ok:
  1358.                 state = 3
  1359.             
  1360.         ok
  1361.         if state == 3:
  1362.             state = -1
  1363.             (ok, valueB) = colorcal_ui('B', 21)
  1364.             if ok:
  1365.                 state = 4
  1366.             
  1367.         ok
  1368.         if state == 4:
  1369.             colorCalType3Phase2(dev, valueA, valueB)
  1370.             state = -1
  1371.             continue
  1372.         if state == 100:
  1373.             photopenreq_ui()
  1374.             ok = False
  1375.             state = -1
  1376.             continue
  1377.     return ok
  1378.  
  1379.  
  1380. def colorCalType3PenCheck(dev):
  1381.     pens = dev.getStatusFromDeviceID()['agents']
  1382.     pen_types = [ pens[x]['type'] for x in range(len(pens)) ]
  1383.     if AGENT_TYPE_KCM in pen_types or AGENT_TYPE_BLUE in pen_types:
  1384.         return True
  1385.     log.error('Cannot perform color calibration with no photo (or photo blue) pen installed.')
  1386.     return False
  1387.  
  1388.  
  1389. def colorCalType3Phase1(dev):
  1390.     dev.writeEmbeddedPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_COLOR_CAL)
  1391.     dev.closePrint()
  1392.  
  1393.  
  1394. def colorCalType3Phase2(dev, A, B):
  1395.     photo_adj = colorcal.PHOTO_ALIGN_TABLE[A - 1][B - 1]
  1396.     color_adj = colorcal.COLOR_ALIGN_TABLE[A - 1][B - 1]
  1397.     adj_value = (color_adj << 0x8L) + photo_adj
  1398.     dev.writeEmbeddedPML(pml.OID_COLOR_CALIBRATION_SELECTION, adj_value)
  1399.     dev.closePrint()
  1400.  
  1401.  
  1402. def colorCalType4(dev, loadpaper_ui, colorcal_ui, wait_ui):
  1403.     state = 0
  1404.     ok = True
  1405.     while state != -1:
  1406.         if state == 0:
  1407.             state = -1
  1408.             ok = loadpaper_ui()
  1409.             if ok:
  1410.                 colorCalType4Phase1(dev)
  1411.                 state = 2
  1412.             
  1413.         ok
  1414.         if state == 2:
  1415.             state = -1
  1416.             (ok, values) = colorcal_ui()
  1417.             if ok:
  1418.                 state = 3
  1419.             
  1420.         ok
  1421.         if state == 3:
  1422.             colorCalType4Phase2(dev, values)
  1423.             state = 4
  1424.             continue
  1425.         if state == 4:
  1426.             state = -1
  1427.             ok = loadpaper_ui()
  1428.             if ok:
  1429.                 colorCalType4Phase3(dev)
  1430.                 state = -1
  1431.             
  1432.         ok
  1433.     return ok
  1434.  
  1435.  
  1436. def colorCalType4Phase1(dev):
  1437.     dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_COLOR_CAL)
  1438.     dev.closePML()
  1439.  
  1440.  
  1441. def colorCalType4AdjValue(value):
  1442.     if value >= 100:
  1443.         return 200
  1444.     return value + 100
  1445.  
  1446.  
  1447. def colorCalType4Phase2(dev, values):
  1448.     if -1 in values:
  1449.         (Cadj, Madj, Yadj, cadj, madj, kadj) = (244, 244, 244, 244, 244, 244)
  1450.     else:
  1451.         (sel1, sel2, sel3, sel4) = values
  1452.         tmp1 = colorcal.TYPE_4_C_TABLE[sel1][sel2]
  1453.         tmp2 = colorcal.TYPE_4_LC_TABLE[sel3][sel4]
  1454.         Cadj = colorCalType4AdjValue(tmp1)
  1455.         cadj = colorCalType4AdjValue(tmp1 + tmp2)
  1456.         tmp1 = colorcal.TYPE_4_M_TABLE[sel1][sel2]
  1457.         tmp2 = colorcal.TYPE_4_LM_TABLE[sel3][sel4]
  1458.         Madj = colorCalType4AdjValue(tmp1)
  1459.         madj = colorCalType4AdjValue(tmp1 + tmp2)
  1460.         Yadj = colorCalType4AdjValue(colorcal.TYPE_4_Y_TABLE[sel1][sel2])
  1461.         kadj = colorCalType4AdjValue(0)
  1462.     log.debug('C=%d, M=%d, Y=%d, c=%d, m=%d, k=%d\n' % (Cadj, Madj, Yadj, cadj, madj, kadj))
  1463.     dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_1, kadj)
  1464.     dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_2, Cadj)
  1465.     dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_3, Madj)
  1466.     dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_4, Yadj)
  1467.     dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_5, cadj)
  1468.     dev.setPML(pml.OID_COLOR_CALIBRATION_ARRAY_6, madj)
  1469.     dev.closePML()
  1470.  
  1471.  
  1472. def colorCalType4Phase3(dev):
  1473.     dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_COLOR_PALETTE_CMYK_PAGE)
  1474.     dev.closePML()
  1475.  
  1476.  
  1477. def colorCalType5(dev, loadpaper_ui):
  1478.     if loadpaper_ui():
  1479.         dev.printData('\x1b%-12345X@PJL ENTER LANGUAGE=PCL3GUI\n\x1bE\x1b%Puifp.multi_button_push 20;\nudw.quit;\x1b*rC\x1bE\x1b%-12345X')
  1480.         dev.closePrint()
  1481.     
  1482.  
  1483.  
  1484. def colorCalType6(dev, loadpaper_ui):
  1485.     if loadpaper_ui():
  1486.         dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_COLOR_CAL)
  1487.         dev.closePML()
  1488.     
  1489.  
  1490.  
  1491. def colorCalType7(dev, loadpaper_ui):
  1492.     if loadpaper_ui():
  1493.         dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_AUTOMATIC_COLOR_CALIBRATION)
  1494.         dev.closePML()
  1495.     
  1496.  
  1497.  
  1498. def linefeedCalType1(dev, loadpaper_ui):
  1499.     if loadpaper_ui():
  1500.         dev.printData('\x1b%-12345X@PJL ENTER LANGUAGE=PCL3GUI\n\x1bE\x1b%Puifp.multi_button_push 3;\nudw.quit;\x1b*rC\x1bE\x1b%-12345X')
  1501.         dev.closePrint()
  1502.     
  1503.  
  1504.  
  1505. def linefeedCalType2(dev, loadpaper_ui):
  1506.     if loadpaper_ui():
  1507.         dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_LINEFEED_CALIBRATION)
  1508.         dev.closePML()
  1509.     
  1510.  
  1511.  
  1512. def printQualityDiagType1(dev, loadpaper_ui):
  1513.     if loadpaper_ui():
  1514.         dev.printData('\x1b%-12345X@PJL ENTER LANGUAGE=PCL3GUI\n\x1bE\x1b%Puifp.multi_button_push 14;\nudw.quit;\x1b*rC\x1bE\x1b%-12345X')
  1515.         dev.closePrint()
  1516.     
  1517.  
  1518.  
  1519. def printQualityDiagType2(dev, loadpaper_ui):
  1520.     if loadpaper_ui():
  1521.         dev.setPML(pml.OID_PRINT_INTERNAL_PAGE, pml.PRINT_INTERNAL_PAGE_PRINT_QUALITY_DIAGNOSTIC)
  1522.         dev.closePML()
  1523.     
  1524.  
  1525.